# /tmp/asdf.pub
n = 167470435982387021585016553700780464333752599695594290827610412297626637802568975490954446076918618872868247386756619320391333065764960501128072699364597729830923692869314973592944449947648570791459365970302270889615319364032956467308032676499605143517020657303052872095918521482357457435567370769192680347367
# n1
n = 123948613128507245097711825164030080528129311429181946930789480629270692835124562568997437300916285601268900901495788327838386854611883075845387070635813324417496512348003686061832004434518190158084956517800098929984855603216625922341285873495112316366384741709770903928077127611563285935366595098601100940173
# n2
#n = 122890614849300155056519159433849880305439158904289542874766496514523043027349829509818565800562562195671251134947871996792136355514373160369135263766229423623131725044925870918859304353484491601318921285331340604341809979578202817714205469839224620893418109679223753141128229197377934231853172927071087589849

modulus = '\x00' + hex(n)[2:-1].decode('hex')

#e = 65537

header2048 = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA'.decode('base64')
header2048 = '3082 0122 300d 0609 2a86 4886 f70d 0101 0105 0003 8201 0f00 3082 010a 0282010100'.replace(' ', '').decode('hex')
header1024 = '3081 9f30 0d06 092a 8648 86f7 0d01 0101 0500 0381 8d00 3081 8902 8181'.replace(' ', '').decode('hex')

with open('/tmp/pubkey.pem', 'wb') as f:
  raw = header1024 + modulus + '\x02\x03' + '\x01\x00\x01'
  f.write('-----BEGIN PUBLIC KEY-----\n')
  f.write(raw.encode('base64'))
  f.write('-----END PUBLIC KEY-----')
